//重做上一题，这次使用shared_ptr而不是内置指针。
#include<iostream>
#include<vector>
#include<memory>
using namespace std;
shared_ptr<vector<int>> test()
{
	return make_shared<vector<int>>();
}
void read(shared_ptr<vector<int>> vec)
{
		int v;
		while (cin >> v)
			vec->push_back(v);
}
void print(shared_ptr<vector<int>> vec)
{
		for (const auto &k : *vec)
	{
		cout << k << endl;
	}
}
int main()
{
	auto te = test();
	read(te);
	print(te);
	return 0;
}